/**
 * 定义状态变量
 */
const state = {
    tokenValue: '',
};

/**
 * 定义修改状态的同步方法
 * 通过 commit 调用 mutations 定义的方法
 */
const mutations = {
    SET_TOKEN_VALUE(state, value) {
        // 修改 state 变量的值
        state.tokenValue = value;
    }
};

/**
 * 定义修改状态的同步方法
 * 通过 dispatch 调用 actions 定义的方法
 */
const actions = {
    updateTokenValue({commit}, tokenValue) {
        // 通过 mutations 去更新 tokenValue 的值
        commit('SET_TOKEN_VALUE', tokenValue);
    },
    // 调用后端的登录接口
    handleLogin({commit}, request) {
        return new Promise((resolve, reject) => {
            // TODO 这里调用后端的登录接口，获取登录成功的 token 信息
            // 登录成功,保存token到本地缓存
            localStorage.setItem('token', 'token的值');
            // 这里模拟登录成功的数据
            return resolve({
                code: 200,
                message: '登录成功',
                data: {
                    token: 'token'
                }
            });
        });
    },
};

// 导出相关的对象
export default {
    namespaced: true,
    state,
    mutations,
    actions
};